/*
 * FileName: virtual_private.cc
 * Author: 李波(Edwin Lee)
 * Date: 2024-06-04 15:03:53
 * Version: 1.0
 * Description:测试派生类在私有域重写基类的公有域虚函数，
然后基类指针指向派生类调用此函数的结果 。
 * 结果是出现了派生类的私有函数调用，因为public、private这些限定符是在编译阶段就定了的，而p->show()是动态绑定的函数，是在运行阶段才确定的，因此没有此类限定
 */
#include <iostream>
using namespace std;
class Base 
{
	public:
		virtual void show()
		{
			cout<<"call Base::show"<<endl;
		}
};

class Derive:public Base
{
	//私有域重写show
	private:
		void show()
		{

			cout<<"call Derive::show"<<endl;
		}
};

int main()
{
	Base *p = new Derive();
	p->show(); //结果出现的是派生类的show()
	delete p;
}
